package com.alks.function.service.finance.ryfinance;

import com.alks.entity.data.entity.YfApAmt;
import com.alks.entity.data.entity.YfApAmtFk;
import com.alks.entity.data.page.PageParam;
import com.alks.entity.data.response.ResponseInfo;
import com.alks.function.data.request.finance.ryfinance.ApAmtHeadRequest;
import com.alks.function.data.vo.finance.mtlcosts.YfApExportVo;

import java.math.BigDecimal;
import java.util.List;
import java.util.Map;

/**
 * @author MS
 * @since 2024/5/27下午4:48
 */
public interface IApAmtService {
    /**
     * 结算资料查询-分页可条件查询
     *
     * @param request
     * @return
     */
    Map<String, Object> apAmtHeadQuery(ApAmtHeadRequest request);

    /**
     * 结算-新增，修改
     * @param financeYymm 结算月份
     * @param vendorName 厂商名称
     * @return 结算结果
     */
    ResponseInfo apAmtHeadAdd(String financeYymm, String vendorName);

    /**
     * 取消结算-删除，修改
     */
    ResponseInfo apAmtHeadDel(String slipNo);

    /**
     * 结算明细查询-分页可条件查询
     */
    Map<String, Object> apAmtDetailQuery(PageParam request, String slipNo,boolean smr);

    /**
     * 结算明细检核-修改
     * @param slipNos
     * @param cfmFlag
     * @return
     */
    ResponseInfo apAmtCfm(List<String> slipNos, String cfmFlag);

    /**
     * 付款记录查询-条件查询
     * @param slipNo
     * @return
     */
    ResponseInfo apAmtFkQuery(String slipNo);

    /**
     * 付款记录修改-修改
     * @param request
     * @return
     */
    ResponseInfo apAmtFkUp(List<YfApAmtFk> request);


    /**
     * 付款记录删除-删除
     * @param slipNo
     * @param item
     * @return
     */
    ResponseInfo apAmtFkDel(String slipNo, BigDecimal item);

    /**
     * 尾款处理-新增
     * @param slipNos
     * @return
     */
    ResponseInfo aftPayProcess(List<String> slipNos);

    /**
     * 明细导出补充品牌
     * @param dtoList 待补充数据
     * @return 补充后的数据
     */
    List<YfApExportVo> detExpAdtCustom(List<YfApAmt> dtoList);
}
